# 生成manifest.json文件的工具


import datetime
import os
import json
from pathlib import Path

def generate_manifest(root_dir, output_file="manifest.json", version):
    """
    递归遍历目录并生成manifest.json文件
    
    参数:
        root_dir: 要遍历的根目录
        output_file: 输出的manifest文件名
    """
    file_list = []
    
    # 使用os.walk递归遍历目录
    for root, dirs, files in os.walk(root_dir):
        for file in files:
            # 获取文件相对路径
            full_path = os.path.join(root, file)
            relative_path = os.path.relpath(full_path, start=root_dir)
            file_list.append(relative_path.replace("\\", "/"))  # 统一使用正斜杠
    
    # 创建manifest数据结构
    manifest = {
        "version": version,
        "url":"https://gitee.com/z-framework/Framework0.0.1/raw/master/",
        "timestamp": datetime.datetime.now().isoformat(),
        "files": sorted(file_list)  # 按字母顺序排序
    }
    
    # 写入JSON文件
    with open(output_file, "w", encoding="utf-8") as f:
        json.dump(manifest, f, indent=2, ensure_ascii=False)
    
    print(f"成功生成manifest文件: {output_file}")
    print(f"共找到 {len(file_list)} 个文件")

if __name__ == "__main__":
    # 使用示例
    target_directory = input("请输入要遍历的目录路径: ").strip()
    if not target_directory:
        target_directory = "."  # 默认当前目录
    
    if not os.path.isdir(target_directory):
        print(f"错误: 目录 '{target_directory}' 不存在")
    else:
        generate_manifest(target_directory)
